package com.byit.service.impl;

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.byit.domain.AppMessageNotice;
import com.byit.mapper.AppMessageNoticeMapper;
import com.byit.service.IAppMessageNoticeService;
import com.byit.utils.IpUtils;
import com.byit.utils.PageUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Map;

/**
 * @ClassName IAppMessageNoticeImpl
 * @Description TODO
 * @Author lxp
 * @Date 2019-01-02 17:22
 **/
@Service
public class AppMessageNoticeImpl extends ServiceImpl<AppMessageNoticeMapper, AppMessageNotice> implements IAppMessageNoticeService {

    private Logger logger = LoggerFactory.getLogger(this.getClass());

    @Autowired
    private AppMessageNoticeMapper appMessageNoticeMapper;

    @Override
    public void delAppMessageNoticeById(Map<String, Object> params) {
        appMessageNoticeMapper.delAppMessageNoticeById(params);
    }

    @Override
    public Page<JSONObject> selectAppMessageNoticeAll(Page<AppMessageNotice> pageInfo, Map<String, Object> params) {
        List<JSONObject> list = appMessageNoticeMapper.selectAppMessageNoticeAll(pageInfo, params);

        Page<JSONObject> page = PageUtil.transform(pageInfo);

        page.setRecords(list);

        return page;
    }

    @Override
    public List<JSONObject> getAppNewsType(String title) {

        List<JSONObject> list = appMessageNoticeMapper.selectAppMessageNoticeList();
        return list;
    }

    @Override
    public Page<JSONObject> selectAppMessageNoticeAll(Page<AppMessageNotice> pageInfo, Map<String, Object> params, HttpServletRequest request) {
        List<JSONObject> list = appMessageNoticeMapper.selectAppMessageNoticeIsCheck(pageInfo, params);
        String ipAddr = IpUtils.getRequestURL(request);
        list.forEach(info -> {
            info.put("detailsUrl", ipAddr + "/app/messageNotice/" + info.get("id") + ".html");
        });
        Page<JSONObject> page = PageUtil.transform(pageInfo);

        page.setRecords(list);
        return page;
    }

    @Override
    public List<JSONObject> selectSystemMessage(Map<String, Object> params,HttpServletRequest request) {
        List<JSONObject> list = appMessageNoticeMapper.selectSystemMessage(params);
        String ipAddr = IpUtils.getRequestURL(request);
        list.forEach(info -> {
            info.put("detailsUrl", ipAddr + "/app/messageNotice/" + info.get("id") + ".html");
        });
        return list;
    }

    @Override
    public List<JSONObject> selectNesestMessage(Map<String, Object> params,HttpServletRequest request) {
        List<JSONObject> list = appMessageNoticeMapper.selectNesestMessage(params);

        String ipAddr = IpUtils.getRequestURL(request);
        list.forEach(info -> {
            info.put("detailsUrl", ipAddr + "/app/messageNotice/" + info.get("id") + ".html");
        });
        return list;
    }




}

